package com.glacier.yuyuan.modules.admin.sys.mapper;

import com.glacier.common.core.mapper.TreeMapper;
import com.glacier.yuyuan.modules.admin.sys.domain.Office;
import org.apache.ibatis.annotations.Param;

import java.io.Serializable;
import java.util.List;

/**
 * date 2022-11-10 12:48
 * 组织机构
 *
 * @author glacier
 * @version 1.0
 */
public interface OfficeMapper extends TreeMapper<Office> {

    /**
     * 更新parentIds
     *
     * @param entity
     * @return
     */
    int updateParents(Office entity);

    /**
     * 根据id 查询所有父子节点id(包含自身节点)，按照层级升序排序（
     * 以自身为层级1，往上查询父节点，查到即层级加1）
     *
     * @param id   id
     * @param <ID> id类型
     * @return 父节点id集合(包含自身节点)
     */
    <ID extends Serializable> List<ID> findAllParentIds(@Param("id") ID id);
}
